草庐IT

php - phpDoc @method 签名中的可选参数

全部标签

ruby - Ruby on Rails 中的实用程序类

这可能是个愚蠢的问题,但我是RubyonRails的新手,需要一些指导。我想要一个帮助程序/实用程序类来执行一组网络操作并返回结果。我将该类放在哪里以及如何使用它。我在我的app/modulename/helpers目录中创建了network_helper.rb。当我尝试做时在我的Controller中myNetworkHelper=ModuleName::NetworkHelper.newresults=myNetworkHelper.getResults我得到一个错误undefinedmethod`new'forMyModule::NetworkHelper:Module我敢肯定这

ruby - 如何递归地用 ""替换 ruby​​ 哈希中的所有 nil 值?

str=""hash=Hash.from_xml(str)#=>{"a"=>{"b"=>{"c"=>nil}}}如何将散列中的所有nil替换为"",以便散列变为:{"a"=>{"b"=>{"c"=>""}}} 最佳答案 这里是递归的方法,不改变原来的hash。代码defdenilize(h)h.each_with_object({}){|(k,v),g|g[k]=(Hash===v)?denilize(v):v.nil??'':v}end示例h={"a"=>{"b"=>{"c"=>nil}}}denilize(h)#=>{"a"=>

ruby - Ruby 中的 URI.escape 和 URI.encode 有什么区别?

我试图找出URI.escape和URI.encode之间的区别ruby。两者都没有按照我的意愿进行,即对URL进行完全编码。例如,我希望http://my.web.com为http%3A%2F%2Fmy%2Eweb%2Ecom 最佳答案 没有区别。在Ruby1.9.3中encodeissimplyanaliasforescape.[编辑]请注意,这些方法允许对字符的“不安全”描述符进行编码:URI.encode('http://my.web.com',/\W/)#=>"http%3A%2F%2Fmy%2Eweb%2Ecom"谢谢@m

ruby - ruby 中的最后一个索引是否有等效的 Array#find_index ?

Array#find_index允许您找到第一个项目的索引等于一个对象,或者使传递给它的block评估为真Array#rindex可以让您找到等于object的最后一项的索引,但是有没有什么可以让您找到的索引使block传递给它的最后一项返回true?否则,我是否应该做类似的事情last_index=array.length-1-array.reverse.find_index{|item|item.is_wanted?} 最佳答案 在Ruby1.9.2中Array#rindex接受block:http://apidock.com/

Ruby - 结构和命名参数继承

这个问题完全是关于Struct行为的,所以请不要问“为什么在广泛的体育世界中你要那样做?”此代码不正确,但它应该说明我试图了解的有关RubyStructs的内容:classPerson如您所见,尝试使用Structs定义类继承。但是,当然,当您尝试初始化ReligiousPerson或PoliticalPerson时,Ruby会变得脾气暴躁。因此,鉴于此说明性代码,如何使用这种使用Structs的类继承来继承命名参数? 最佳答案 您可以定义基于Person的新结构:classPerson结果:##在发布我的答案后我立即有了一个想法:

ruby - 在初始化时使用 attr_accessor 设置 ruby​​ 2.0 关键字参数

我怎样才能动态设置而不用写相同的代码。现在的代码是这样的:definitialize(keywords:keywords,title:title,url:url,adsetting:adsetting)self.keywords=keywordsself.title=titleself.url=urlself.adsetting=adsettingend如果列表变长,这很快就会失控。在ruby​​1.9中,我只需将哈希传递给该方法。像这样:definitialize(args)args.eachdo|k,v|instance_variable_set("@#{k}",v)unlessv

ruby-on-rails - class_methods 在关注中做了什么?

我正在阅读一些使用Rails4中关注点的代码。我看了一些文章说,如果我们想包含类方法使用模块ClassMethods,但我阅读的代码使用类似:class_methodsdodef****endend 最佳答案 ActiveSupport::Concern为模块混合的常见Ruby模式提供语法糖。当您使用modulesasmixins时你不能像在类中那样只使用self来声明类方法:moduleFoodefself.bar"HelloWorld"enddefinstance_method"HelloWorld"endendclassBaz

ruby - Ruby 中的“||=”运算符

有人可以向我解释以下Ruby代码的含义吗?(我在一个人的项目中看到了这个代码片段):car||=(method_1||method_2||method_3||method_4)上面的代码和下面的代码有什么区别?car=method_1||method_2||method_3||method_4------------更新----------------好的,在阅读@Dave的解释后,我明白了||=运算符的含义,我的下一个问题是如果method_2,method_3和method_4返回一个值,哪个值会赋值给car?(我想car最初是nil) 最佳答案

Ruby 类方法与特征类中的方法

类方法和该类的特征类(或元类)中的方法是否只是定义一个事物的两种方式?否则,有什么区别?classX#classmethoddefself.a"a"end#eigenclassmethodclassX.a和X.b的行为是否有任何不同?我认识到我可以通过打开特征类来覆盖或别名类方法:irb(main):031:0>classX;defself.a;"a";end;end=>nilirb(main):032:0>classX;class#irb(main):033:0>X.a=>"a"irb(main):034:0>X.b=>"a"irb(main):035:0>classX;classn

ruby - 具有可选查询参数的 Sinatra

我想创建一个带有可选查询参数的SinatraAPI路由。我可以按如下方式添加查询参数%r{^/mysql/data/(?)/start_time=(?\w*)/?}但是上面route对应的route是像"/mysql/data/:name/start_time=:start_time"我需要查询参数作为可选参数并以URL格式声明。例如:/mysql/data/:name?start_time=:start_time&end_time=:end_time在Sinatra中有什么方法可以做到这一点吗? 最佳答案 引自Sinatra文档: